<template>
	<!-- .mui-numbox盒子中本来有:data-numbox-max='max' 但由于max值来源于异步请求，会出现undefined的情况   这里就需要用watch监听max值的变化 -->
	<!-- 问题： 我们不知道什么时候能够拿到 max值 但是总归有一刻 会得到一个真正的max值 -->
	<!-- 我们可以使用 watch属性监听 来监听父组件传递过来的 max值 不管watch会被触发几次 但是最后一次  肯定是一个合法的max值 -->
	<div class="mui-numbox" data-numbox-min='1'>
		<button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
		<input id="test" class="mui-input-numbox" type="number" value="1" @change="countChanged" ref="numbox" />
		<button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
	</div>
	<!-- 子组件什么时候 把数据传递给父组件-->
	<!-- 监听文本框的change事件, 当文本框中的内容发生改变时 把数据传递给父组件 -->
</template>

<script>
	import mui from '../../lib/mui-dist/js/mui.min.js'
	export default {
		mounted() {
			//初始化数字选择框组件
			//https://dev.dcloud.net.cn/mui/ui/#numbox
			mui(".mui-numbox").numbox()
			// console.log(this.max)    得到的结果是undefined
		},
		methods: {
			countChanged() {
				// 每当文本框的数据被修改的时候, 立即把最新的数据, 通过事件调用, 传递给父组件
				// console.log(this.$refs.numbox.value)
				this.$emit('getcount', parseInt(this.$refs.numbox.value))
			}
		},
		props: ['max'],
		watch: {
			// max键  指的是上边props数组中的max  需要监听的数据
			max: function(newVal, oldVal) {
				//第一个参数是新值
				//第二个参数是旧值
				// https://dev.dcloud.net.cn/mui/ui/#numbox
				// setOption(options)	更新选项,可取值: min(Int),step(Int),max(Int)
				mui(".mui-numbox").numbox().setOption('max', newVal)
			}
		}
	}
</script>

<style lang="scss" scoped></style>